<html>
<head><meta charset="utf-8"><title>2020-10-05 meeting · project-portable-simd · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/index.html">project-portable-simd</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html">2020-10-05 meeting</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="212343708"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212343708" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212343708">(Oct 05 2020 at 19:10)</a>:</h4>
<p>Hello! Meeting in ~3 hours. hackmd is here: <a href="https://hackmd.io/koVzlGQ0QsWqn1iwLf-Wyg">https://hackmd.io/koVzlGQ0QsWqn1iwLf-Wyg</a></p>



<a name="212348406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212348406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212348406">(Oct 05 2020 at 19:55)</a>:</h4>
<p>hi, how can i attend the meeting? or is it purely in zulip</p>



<a name="212348454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212348454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212348454">(Oct 05 2020 at 19:55)</a>:</h4>
<p>just Zulip, we'll make a topic around the right time.</p>



<a name="212353079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212353079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212353079">(Oct 05 2020 at 20:34)</a>:</h4>
<p>Actually we can just use this topic i guess, name already fits.</p>



<a name="212353824"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212353824" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212353824">(Oct 05 2020 at 20:40)</a>:</h4>
<p>so it's at 3PST?</p>



<a name="212353843"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212353843" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212353843">(Oct 05 2020 at 20:41)</a>:</h4>
<p>Correct, 80 minutes.</p>



<a name="212353885"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212353885" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212353885">(Oct 05 2020 at 20:41)</a>:</h4>
<p>thanks, and sorry for all the questions</p>



<a name="212356433"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212356433" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212356433">(Oct 05 2020 at 21:03)</a>:</h4>
<p>Questions are quite fine! Someone's got to ask them or we won't know what to answer.</p>



<a name="212360524"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212360524" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212360524">(Oct 05 2020 at 21:42)</a>:</h4>
<p>Hey all! I’m on public transport again this morning so will try keep up but internet here is... patchy 😅</p>



<a name="212362007"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362007" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362007">(Oct 05 2020 at 22:00)</a>:</h4>
<p>Hello everyone! Give a wave if you're present!</p>



<a name="212362222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362222">(Oct 05 2020 at 22:02)</a>:</h4>
<p>Meeting agenda reminder: <a href="https://hackmd.io/koVzlGQ0QsWqn1iwLf-Wyg">https://hackmd.io/koVzlGQ0QsWqn1iwLf-Wyg</a></p>



<a name="212362224"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362224" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362224">(Oct 05 2020 at 22:02)</a>:</h4>
<p><a href="https://hackmd.io/koVzlGQ0QsWqn1iwLf-Wyg">https://hackmd.io/koVzlGQ0QsWqn1iwLf-Wyg</a> hackmd is here still. <span aria-label="eyes" class="emoji emoji-1f440" role="img" title="eyes">:eyes:</span> <br>
We got an update on aarch64's expect SIMD capabilities ("yes, ARMv8 Neon always.")<br>
I found a bug with simd_extract and simd_insert, plz do not kill Miri at least.</p>



<a name="212362340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362340">(Oct 05 2020 at 22:04)</a>:</h4>
<p>There's a bunch of things we could talk about if people wanted but MUAHAHA I'm setting the agenda I guess. :^)</p>



<a name="212362370"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362370" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362370">(Oct 05 2020 at 22:04)</a>:</h4>
<p>I'm patiently waiting for point <a href="https://github.com/rust-lang/rust/issues/2">#2</a> :)</p>



<a name="212362371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362371">(Oct 05 2020 at 22:04)</a>:</h4>
<p>testing crates: I dug through some older code from a while ago and found the parameterized test case crate was... uh, <code>test-case</code>.</p>



<a name="212362416"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362416" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362416">(Oct 05 2020 at 22:05)</a>:</h4>
<p>We've discussed adopting quickcheck or a similar crate in its "family" (proptest, hypothesis) although I don't know if any active motion towards that has happened aside from some poking around.</p>



<a name="212362440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362440">(Oct 05 2020 at 22:06)</a>:</h4>
<p>That's all I wanted to say about that so unless anyone has anything to add?</p>



<a name="212362494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362494">(Oct 05 2020 at 22:06)</a>:</h4>
<p>what makes testing for portable simd notably different than for e.g. any other project? (i'm a little surprised to see it called out, since yeah it's a concern but it's a concern for everything)</p>



<a name="212362499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362499">(Oct 05 2020 at 22:06)</a>:</h4>
<p>I haven't gone beyond reading up on quickcheck and proptest, shall I just continue and implement some tests for what we already have?</p>



<a name="212362522"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362522" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362522">(Oct 05 2020 at 22:06)</a>:</h4>
<p>Sure.<br>
<span class="user-mention" data-user-id="209168">@Thom Chiovoloni</span> mostly concerns about efficiently writing <strong>one million</strong> tests.</p>



<a name="212362540"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362540" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362540">(Oct 05 2020 at 22:07)</a>:</h4>
<p>er, parameterization.</p>



<a name="212362612"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362612" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362612">(Oct 05 2020 at 22:08)</a>:</h4>
<p>I wouldn't say it's much different than anything else that has an enormous number of possible inputs</p>



<a name="212362628"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362628" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362628">(Oct 05 2020 at 22:08)</a>:</h4>
<p>with possible corner cases</p>



<a name="212362659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362659">(Oct 05 2020 at 22:08)</a>:</h4>
<p>I think that if we just have a few good lists of general corner case values for each element type we don't need the extra quick checking</p>



<a name="212362663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362663">(Oct 05 2020 at 22:08)</a>:</h4>
<p>i see. i've used quickcheck in the past for SIMD code (<a href="https://github.com/thomcc/bad3d/blob/master/t3m/src/simd.rs#L398-L417">https://github.com/thomcc/bad3d/blob/master/t3m/src/simd.rs#L398-L417</a>) and it needed to be run in a loop in order to thoroughly test stuff. you'll note a few lines down i end up just testing programattically. i've heard this is less of an issue wiht proptest and such.</p>



<a name="212362668"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362668" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362668">(Oct 05 2020 at 22:08)</a>:</h4>
<p>maybe not!</p>



<a name="212362698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362698">(Oct 05 2020 at 22:09)</a>:</h4>
<p>Interesting.<br>
Yeah.<br>
If different vector length/types compile to notably different vendor APIs we need to actually try to catch differences in those, so we can't actually sidestep testing different vector length/types, so it winds up being the same tests over multiple things which often requires some kind of macro or something so nothing "special", just... "quickly spitballing about what code is already written to make this go faster?"<br>
The big thing is that nothing actually replaces testing the knowable edge cases (and testing the knowable edge cases is still a lot).</p>



<a name="212362792"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362792" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362792">(Oct 05 2020 at 22:10)</a>:</h4>
<p>I think quick checking sounds good for possibly discovering things due to either bugs in rustc or llvm, assuming we have perfect corner case test coverage</p>



<a name="212362846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362846">(Oct 05 2020 at 22:11)</a>:</h4>
<p>anyways... point <a href="https://github.com/rust-lang/rust/issues/2">#2</a> that Caleb is eagerly awaiting for!</p>



<a name="212362862"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362862" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362862">(Oct 05 2020 at 22:11)</a>:</h4>
<p>to be clear i'm in favor of generated testing like this, but just didn't have the best experience with quickcheck here. it's feels optimized for quick sanity checks rather than something more like fuzzing. i also vaguely remember seeing <span class="user-mention" data-user-id="222471">@BurntSushi</span> say he would like something to replace it in the ecosystem, but i can't find it now</p>



<a name="212362873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362873">(Oct 05 2020 at 22:11)</a>:</h4>
<p>er... that's a rustc issue, uh. "Organizing help (reports of “I want to help but I don’t know what I can help with? Who is working on what?”)"</p>



<a name="212362902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362902">(Oct 05 2020 at 22:11)</a>:</h4>
<p>quick checking is nice, but it adds another macro layer within the test modules, so let's put it off for now and have it be more of a "2nd layer testing quality" thing later if we turn out to need it.</p>



<a name="212362961"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212362961" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212362961">(Oct 05 2020 at 22:12)</a>:</h4>
<p>works for me</p>



<a name="212363014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363014">(Oct 05 2020 at 22:13)</a>:</h4>
<p>So... I guess we need to write a CONTRIBUTING.md to start, huh?</p>



<a name="212363092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363092">(Oct 05 2020 at 22:14)</a>:</h4>
<p>Yeah probably</p>



<a name="212363099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363099">(Oct 05 2020 at 22:14)</a>:</h4>
<p>Yes. A contributor should add a minimum of one (1) method (eg: <code>sqrt</code>, <code>powef</code>, etc) to all types appropriate for the method as well as adding tests for the methods.</p>



<a name="212363118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363118">(Oct 05 2020 at 22:14)</a>:</h4>
<p>yeah. when i looked at the repo a few days ago (which was the first i found out about it), it didn't seem like there was much actionable work to do other than subscribe to the issues. i only just thought today "oh it would definitely have a zulip stream since it's a project group"</p>



<a name="212363122"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363122" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363122">(Oct 05 2020 at 22:14)</a>:</h4>
<p>What <em>is</em> everyone working on currently? <span aria-label="eyes" class="emoji emoji-1f440" role="img" title="eyes">:eyes:</span> I was exploring rustc's LLVM interface.</p>



<a name="212363152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363152">(Oct 05 2020 at 22:15)</a>:</h4>
<p>Ah wow, we probably have Zulip links from the project repo but not pointers from stdsimd.</p>



<a name="212363187"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363187" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363187">(Oct 05 2020 at 22:15)</a>:</h4>
<p>Also, in terms of actually assigning issues, I think if someone who is active in the group (in zulip?) wants to claim an issue, we should use github's assignees, otherwise just leave it open and if someone provides us a PR great</p>



<a name="212363203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363203">(Oct 05 2020 at 22:15)</a>:</h4>
<p>Sure.</p>



<a name="212363271"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363271" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363271">(Oct 05 2020 at 22:16)</a>:</h4>
<p>On large issues: people should be encouraged to go segment by segment, even if it means someone does a little more overhead in coordinating.</p>



<a name="212363309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363309">(Oct 05 2020 at 22:16)</a>:</h4>
<p>I was looking into Julia's SIMD implementation</p>



<a name="212363343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363343">(Oct 05 2020 at 22:17)</a>:</h4>
<p>I'm perfectly willing to micro manage issue checkbox lists and just take in a series of smaller PRs.</p>



<a name="212363371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363371">(Oct 05 2020 at 22:17)</a>:</h4>
<p>I haven't done much at all since the core ops PR got merged, though I'd like to take a look at some of the special ops soon</p>



<a name="212363459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363459">(Oct 05 2020 at 22:18)</a>:</h4>
<p>I have noticed that in rustc, large-ish issues which seem "simple" because they can be macro'd over or something actually often take a significant amount of overhead to write, and people go one-by-one and fail.</p>
<p>But ones which are chunked into tiny amounts have been quickly cleaned up. Even if they're all "related" functions, people should probably be nudged to handle this stuff one fn at a time (unless it's <em>really related</em> or <em>really basic</em>).</p>



<a name="212363466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363466">(Oct 05 2020 at 22:18)</a>:</h4>
<p>i have some bandwidth and could do stuff (i've written a lot of simd code in the past), but only just now noticed the "We're currently working on an initial std::simd implementation over in the stdsimd repo." note <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="212363491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363491">(Oct 05 2020 at 22:18)</a>:</h4>
<p>We actually probably want a few more type change methods and then we can start implementing the tricky stuff</p>



<a name="212363550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363550">(Oct 05 2020 at 22:19)</a>:</h4>
<p>and sometimes it is the case that like, 95% of the issue gets cleaned up and then a last 5% remains open for a long while, but that's the other reason chunking is good: so people don't all fail on that one nit.</p>



<a name="212363582"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363582" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363582">(Oct 05 2020 at 22:19)</a>:</h4>
<p>What sort of other type conversions do we want? I'm guessing we might want into/from arrays?<br>
( <em>This is Jubilee thinking she is being subtle. She is not.</em> )</p>



<a name="212363672"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363672" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363672">(Oct 05 2020 at 22:20)</a>:</h4>
<p>we want float rounding to float and also float rounding to int</p>



<a name="212363674"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363674" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363674">(Oct 05 2020 at 22:20)</a>:</h4>
<p>reading stuff out of slices is IME much more common than working with arrays. arrays are mostly for constants and such i think</p>



<a name="212363706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363706">(Oct 05 2020 at 22:21)</a>:</h4>
<p>and also int rounding to float</p>



<a name="212363709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363709">(Oct 05 2020 at 22:21)</a>:</h4>
<p>Well, reading stuff out of slices is also more common because until const generics arrays were the devil to work with.</p>



<a name="212363727"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363727" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363727">(Oct 05 2020 at 22:21)</a>:</h4>
<p>is there any documentation on the current state of the design? i feel like there are a lot of open questions (do we have a plan for how swizzling will work? or how to make both runtime and compiletime detection viable without crippling runtime detection performance, ...) but i might just not be finding stuff</p>



<a name="212363733"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363733" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363733">(Oct 05 2020 at 22:21)</a>:</h4>
<p>Ahhh, the int / float conversions.</p>



<a name="212363767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363767">(Oct 05 2020 at 22:21)</a>:</h4>
<p>we don't have a shuffle design</p>



<a name="212363818"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363818" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363818">(Oct 05 2020 at 22:22)</a>:</h4>
<p><span class="user-mention" data-user-id="224471">@Lokathor</span> maybe some of the special ops should be broken up into rounding, byte-related, lanewise math, etc</p>



<a name="212363826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363826">(Oct 05 2020 at 22:22)</a>:</h4>
<p>we do have a runtime detection "design" which is "use the <code>multiversion</code> crate or similar"</p>



<a name="212363859"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363859" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363859">(Oct 05 2020 at 22:22)</a>:</h4>
<p><span class="user-mention silent" data-user-id="224471">Lokathor</span> <a href="#narrow/stream/257879-project-portable-simd/topic/2020-10-05.20meeting/near/212363767">said</a>:</p>
<blockquote>
<p>we don't have a shuffle design</p>
</blockquote>
<p>for testing?</p>



<a name="212363863"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363863" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363863">(Oct 05 2020 at 22:22)</a>:</h4>
<p>huh, okay. i don't really think that (multiversion) solves the problem, but it's probably an ok start.</p>



<a name="212363864"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363864" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363864">(Oct 05 2020 at 22:22)</a>:</h4>
<p>We don't have a shuffle design aside from a vague noise about how we expect it to be const.<br>
Runtime API detection is mostly considered out-of-scope (ish). A nice-to-have.</p>



<a name="212363916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363916">(Oct 05 2020 at 22:23)</a>:</h4>
<p><span class="user-mention" data-user-id="281739">@Oliver</span> Also hello! What's interesting about Julia's SIMD implementation?</p>



<a name="212363927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363927">(Oct 05 2020 at 22:24)</a>:</h4>
<p>ah that sounds super unfortunate... i guess it makes sense though, it's a hard problem, and solving it safely has a lot of overhead in the naive approach</p>



<a name="212363998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212363998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212363998">(Oct 05 2020 at 22:24)</a>:</h4>
<p><span class="user-mention silent" data-user-id="281757">Jubilee</span> <a href="#narrow/stream/257879-project-portable-simd/topic/2020-10-05.20meeting/near/212363916">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="281739">Oliver</span> Also hello! What's interesting about Julia's SIMD implementation?</p>
</blockquote>
<p>The vectorization</p>



<a name="212364030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364030">(Oct 05 2020 at 22:25)</a>:</h4>
<p>Oh?<br>
<span class="user-mention" data-user-id="209168">@Thom Chiovoloni</span> Our goal is to stabilize something useful in 2021. This is "breakneck speed" compared to... a lot of projects that have been caught in thrash from taking on fairly grand designs.</p>



<a name="212364056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364056">(Oct 05 2020 at 22:25)</a>:</h4>
<p>So all our ops are marked as <code>inline</code>, so the actual codegen happens in the caller's function, so if you use <code>target_feature(enable="foo")</code> they should codegen with the appropriate feature level, which is what <code>multiversion</code> abstracts for you. So... it should all "just work" on its own without <code>core::simd</code> providing any explicit additional runtime detction options.</p>



<a name="212364060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364060">(Oct 05 2020 at 22:25)</a>:</h4>
<p>that's fine, so long as the design can be extended to support use cases backed by runtime detection somehow</p>



<a name="212364082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364082">(Oct 05 2020 at 22:25)</a>:</h4>
<p>i think it needs to be a consideration even if it's not a thing to solve immediately</p>



<a name="212364134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364134">(Oct 05 2020 at 22:26)</a>:</h4>
<p>Yeah, the idea is that we don't do anything that significantly walls off future design space and we produce recommendations of design directions for the going-forward concerns.</p>



<a name="212364140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364140">(Oct 05 2020 at 22:26)</a>:</h4>
<p>without actually saying anything firm on it.</p>



<a name="212364206"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364206" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364206">(Oct 05 2020 at 22:26)</a>:</h4>
<p>But also this is why I've been occasionally semi-jokingly suggesting "so, how about we <em>literally only ship 128-bit vectors</em>?"</p>



<a name="212364242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364242">(Oct 05 2020 at 22:27)</a>:</h4>
<p>FWIW Julia is consitently best in class for the design of their numeric libraries, but looking at <a href="https://github.com/eschnett/SIMD.jl">https://github.com/eschnett/SIMD.jl</a> (first result for simd julia) i think it's maybe too high level.</p>



<a name="212364246"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364246" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364246">(Oct 05 2020 at 22:27)</a>:</h4>
<p>so to expand on that, the current stance is that rust _already_ has runtime support, via <code>is_x86_feature_detected</code> etc and <code>#[target_feature]</code></p>



<a name="212364264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364264">(Oct 05 2020 at 22:27)</a>:</h4>
<p><span class="user-mention silent" data-user-id="209168">Thom Chiovoloni</span> <a href="#narrow/stream/257879-project-portable-simd/topic/2020-10-05.20meeting/near/212364242">said</a>:</p>
<blockquote>
<p>FWIW Julia is consitently best in class for the design of their numeric libraries, but looking at <a href="https://github.com/eschnett/SIMD.jl">https://github.com/eschnett/SIMD.jl</a> (first result for simd julia) i think it's maybe too high level.</p>
</blockquote>
<p>They have test cases</p>



<a name="212364271"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364271" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364271">(Oct 05 2020 at 22:27)</a>:</h4>
<p>I think we should codify some of our non-goals.</p>



<a name="212364317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364317">(Oct 05 2020 at 22:28)</a>:</h4>
<p>Explicitly.</p>



<a name="212364338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364338">(Oct 05 2020 at 22:28)</a>:</h4>
<p>i mean i think 128 bit vectors should be the default choice for 99% of people, but there are a lot of cases where you do want to go as wide as possible</p>



<a name="212364402"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364402" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364402">(Oct 05 2020 at 22:29)</a>:</h4>
<p>i put the runtime feature detection into the FAQ, but maybe we need to make it part of the main readme or link the readme to the faq or something</p>



<a name="212364490"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364490" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364490">(Oct 05 2020 at 22:30)</a>:</h4>
<p>Yes! Also as discussed there's like, real cases where you want 64-bit or 256-bit vectors. That is why it is only <strong>mostly</strong> a joke</p>



<a name="212364524"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364524" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364524">(Oct 05 2020 at 22:30)</a>:</h4>
<p>Or some fields (I work in DSP) where you simply want the widest vector possible :)</p>



<a name="212364530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364530">(Oct 05 2020 at 22:30)</a>:</h4>
<p>yeah. i do mostly agree though, i often tell people that sse2 oughta be enough for everyone :p. sadly, sometimes it's just not</p>



<a name="212364578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364578">(Oct 05 2020 at 22:31)</a>:</h4>
<p>with the x64 stuff, even staying at 128-bit, higher feature levels unlock more operations</p>



<a name="212364588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oliver <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364588">(Oct 05 2020 at 22:31)</a>:</h4>
<p>If anything it's early support for 128-bit OSs</p>



<a name="212364618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364618">(Oct 05 2020 at 22:32)</a>:</h4>
<p>you want wider vectors for very parallelizable problems, or problems where you have a complex / slow inner loop where you benefit from getting as many items done in it as possible (among others)</p>



<a name="212364665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364665">(Oct 05 2020 at 22:32)</a>:</h4>
<p>128-bit OS will be surreal to see.</p>



<a name="212364711"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364711" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364711">(Oct 05 2020 at 22:32)</a>:</h4>
<p>so uh, <span class="user-mention" data-user-id="281757">@Jubilee</span> , what's the story with insert/extract. if you use in bounds indexes does it ever cause problems?</p>



<a name="212364728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364728">(Oct 05 2020 at 22:33)</a>:</h4>
<p>Okay, we have diverged into a few threads and it is already 3:30.<br>
<span class="user-mention" data-user-id="224471">@Lokathor</span> Nope! It works fine.</p>



<a name="212364758"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364758" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364758">(Oct 05 2020 at 22:33)</a>:</h4>
<p>so we just need a bound check, or a wrap, but probably people want a bound check</p>



<a name="212364823"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364823" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364823">(Oct 05 2020 at 22:34)</a>:</h4>
<p>Yeah, I see no reason to diverge from rustc's implementation here for simd_shuffleN, basically.</p>



<a name="212364835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364835">(Oct 05 2020 at 22:34)</a>:</h4>
<p>and, heck, <em>we are part of the standard library</em>, technically we'd be able to use <code>rustc_const_arg</code> on an experimental basis</p>



<a name="212364850"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364850" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364850">(Oct 05 2020 at 22:34)</a>:</h4>
<p>Yep!</p>



<a name="212364865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364865">(Oct 05 2020 at 22:34)</a>:</h4>
<p>Have we looked into exposing the shuffle as a const generic instead of a const argument?</p>



<a name="212364878"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364878" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364878">(Oct 05 2020 at 22:35)</a>:</h4>
<p>(underneath I assume it still uses a const argument, if that's what the intrinsic uses)</p>



<a name="212364902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364902">(Oct 05 2020 at 22:35)</a>:</h4>
<p>not yet that i know of, but that's probably the good long term plan. i think we'd be able to use min_const_generics even</p>



<a name="212364912"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364912" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364912">(Oct 05 2020 at 22:35)</a>:</h4>
<p>since really you're just taking in usize values</p>



<a name="212364926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364926">(Oct 05 2020 at 22:35)</a>:</h4>
<p>So for simd_shuffleN, _insert, and _extract, right now it's a discussion re: the platform-intrinsics we link against in std::simd.</p>



<a name="212364928"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364928" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364928">(Oct 05 2020 at 22:35)</a>:</h4>
<p>Yeah, that's what I'd like to do.  If rust's generics go the way of C++'s const generics won't be foreign at all in a few years</p>



<a name="212364988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212364988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212364988">(Oct 05 2020 at 22:36)</a>:</h4>
<p>so it'd be something like,</p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="kd">let</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="p">.</span><span class="n">shuffle</span>::<span class="o">&lt;</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="o">&gt;</span><span class="p">();</span><span class="w"></span>
</code></pre></div>



<a name="212365006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365006">(Oct 05 2020 at 22:37)</a>:</h4>
<p>so mostly people aren't linking against these and they're unstable, and we are entitled to do whatever we want to that and then expose an entirely different API to users.</p>



<a name="212365053"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365053" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365053">(Oct 05 2020 at 22:37)</a>:</h4>
<p>if i understand it right, the platform intrinsics in this case are "we're just gonna let you tell us what LLVM IR we should codegen", kinda?</p>



<a name="212365055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365055">(Oct 05 2020 at 22:37)</a>:</h4>
<p>note that multi-arg shuffles are common too, (e.g. <code>_mm_shuffle_foo</code> takes two vectors). i usually try to use swizzle to talk about this kind of constant-argument-single-vector shuffle, and use shuffle when talking about the more general (that said i'm not throwing shade at anybodys terminology, i'm probably the weird one here)</p>



<a name="212365116"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365116" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365116">(Oct 05 2020 at 22:38)</a>:</h4>
<p>swizzles are the more common case though.</p>



<a name="212365118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365118">(Oct 05 2020 at 22:38)</a>:</h4>
<p>Hey if you have a strong argument for a given terminology I'm listening.</p>



<a name="212365139"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365139" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365139">(Oct 05 2020 at 22:38)</a>:</h4>
<p><span class="user-mention" data-user-id="224471">@Lokathor</span> Yes.<br>
I want to const-fix the index arguments because I believe doing so will prevent us from stepping into a bug until we're ready to actually lift that restriction (i.e. when we go after more dynamic APIs).</p>



<a name="212365148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365148">(Oct 05 2020 at 22:38)</a>:</h4>
<p><code>swizzle</code> for lone value, <code>shuffle_with</code> for two args</p>



<a name="212365162"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365162" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365162">(Oct 05 2020 at 22:39)</a>:</h4>
<p>i do like the look of const generics there. much nicer than the required-const args</p>



<a name="212365265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365265">(Oct 05 2020 at 22:40)</a>:</h4>
<p><span class="user-mention" data-user-id="209168">@Thom Chiovoloni</span> One of our ongoing concerns is in fact creating a consistent way to talk about SIMD terms with respect to Rust that is vendor-neutral, not just a library but a shared way of discussing things, so that people can have a mental model that is independent of trying to reference a given vendor's model.</p>



<a name="212365343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365343">(Oct 05 2020 at 22:41)</a>:</h4>
<p>yeah, i don't think the terminology i used is vendor specific. and yeah, i agree with that goal (although, hopefully documentation exists to help people coming from intrinsics — <em>glares at safe_arch</em> 😛)</p>



<a name="212365433"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365433" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365433">(Oct 05 2020 at 22:42)</a>:</h4>
<p>saywhatnow</p>



<a name="212365623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365623">(Oct 05 2020 at 22:44)</a>:</h4>
<p>i don't know if that means i should add more docs to <code>safe_arch</code> or not</p>



<a name="212365637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365637">(Oct 05 2020 at 22:44)</a>:</h4>
<p>(oh, just that you can't search mm_foo_bar and find what safe_arch has named that intrinsic — makes it almost impossible to use for me, since so many of the functions are so low level anyway that the name you've chosen is... still pretty opaque — i guess <code>combined_byte_shr_imm_m128i</code> is clearer than <code>_mm_alignr_epi8</code>, but...)</p>



<a name="212365668"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365668" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365668">(Oct 05 2020 at 22:45)</a>:</h4>
<p>ah, that, well i started to add that in the later feature levels, but didn't go back and do it for the earlier ones. PRs are open :P</p>



<a name="212365669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365669">(Oct 05 2020 at 22:45)</a>:</h4>
<p>Oof?</p>



<a name="212365704"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365704" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365704">(Oct 05 2020 at 22:45)</a>:</h4>
<p>so for the meeting, which seems to have died down... do we have any specific actions to aim for</p>



<a name="212365706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365706">(Oct 05 2020 at 22:46)</a>:</h4>
<p>IMO the ideal solution to problems like this is just to make sure if you search for the vendor intrinsic name you can find the portable name.</p>



<a name="212365757"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365757" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365757">(Oct 05 2020 at 22:46)</a>:</h4>
<p>well i can't fix that because rustdoc's search is pretty bad</p>



<a name="212365786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365786">(Oct 05 2020 at 22:46)</a>:</h4>
<p>(<a href="https://doc.rust-lang.org/beta/unstable-book/language-features/doc-alias.html">https://doc.rust-lang.org/beta/unstable-book/language-features/doc-alias.html</a> maybe? idk)</p>



<a name="212365788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365788">(Oct 05 2020 at 22:46)</a>:</h4>
<p><span class="user-mention" data-user-id="224471">@Lokathor</span> I think it would be good to split up some of the special ops issues so there's a clear delineation of what should be worked on together</p>



<a name="212365799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365799">(Oct 05 2020 at 22:47)</a>:</h4>
<p>And I'd like to take one <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span></p>



<a name="212365813"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365813" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365813">(Oct 05 2020 at 22:47)</a>:</h4>
<p>okay, splitting issues, i can do that</p>



<a name="212365910"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365910" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365910">(Oct 05 2020 at 22:48)</a>:</h4>
<p>As we've discussed before we're not going to provide a specific intrinsic mapping because that involves fixating a deliberately nonfixed part of our API but we can provide general notes.<br>
Yes, promises made in documentation are often considered part of the API.</p>



<a name="212365915"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365915" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365915">(Oct 05 2020 at 22:48)</a>:</h4>
<p>I haven't been well lately and so it's been hard to sit and do actual rust work but i can still do issues in smaller time chunks</p>



<a name="212365961"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212365961" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212365961">(Oct 05 2020 at 22:49)</a>:</h4>
<p><span class="user-mention" data-user-id="281757">@Jubilee</span> yeah, i don't think it should be promised to be equivalent, just that it should be discoverable if you know the other name. at least for the weird ones anyway</p>



<a name="212366079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212366079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212366079">(Oct 05 2020 at 22:50)</a>:</h4>
<p>I feel that.<br>
We've run a bit over, but no one seems to be in a particular hurry. Still, I think calling the formal end here is fine and we can convene same time next week?</p>



<a name="212366092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212366092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212366092">(Oct 05 2020 at 22:50)</a>:</h4>
<p>Thank you all for coming!</p>



<a name="212366172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212366172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212366172">(Oct 05 2020 at 22:52)</a>:</h4>
<p>re: special ops, do you mean like trancendental math functions? i concidentally was just working on sse2 cbrtf for totally unrelated reasons. idk if that's on the roadmap though, since it's rarely useful and almost certainly never provided in hardware.</p>



<a name="212366355"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212366355" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212366355">(Oct 05 2020 at 22:55)</a>:</h4>
<p>we intend to provide most or all of the f32/f64 methods as SIMD variations</p>



<a name="212366432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212366432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212366432">(Oct 05 2020 at 22:56)</a>:</h4>
<p>at least, the ones that have output types that SIMD supposrts. fp_classify, for example, probably doesn't get a SIMD form.</p>



<a name="212366467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212366467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212366467">(Oct 05 2020 at 22:57)</a>:</h4>
<p>Anything that has a tuple output probably needs to be looked at as well</p>



<a name="212366590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212366590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212366590">(Oct 05 2020 at 22:58)</a>:</h4>
<p>1199 seriously proposed not supporting div for vector types fwiw (without committing us to it).</p>



<a name="212367313"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212367313" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212367313">(Oct 05 2020 at 23:06)</a>:</h4>
<p>1199?</p>



<a name="212367380"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212367380" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212367380">(Oct 05 2020 at 23:07)</a>:</h4>
<p><a href="https://rust-lang.github.io/rfcs/1199-simd-infrastructure.html">https://rust-lang.github.io/rfcs/1199-simd-infrastructure.html</a></p>



<a name="212367526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212367526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212367526">(Oct 05 2020 at 23:09)</a>:</h4>
<p>it's one of the unanswered questions.</p>



<a name="212367640"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212367640" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212367640">(Oct 05 2020 at 23:10)</a>:</h4>
<p>alright: i'll answer it: if you need div you need div and that's all there is to it. We don't offer perfect performance.</p>



<a name="212367792"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212367792" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212367792">(Oct 05 2020 at 23:12)</a>:</h4>
<p>yeah I wasn't seriously suggesting we don't, I was more holding it up as an example of "exact feature parity with scalar APIs was never a goal"</p>



<a name="212368093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212368093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Thom Chiovoloni <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212368093">(Oct 05 2020 at 23:17)</a>:</h4>
<p>re:testing, the sse2neon repo seems to have this monster of a test file <a href="https://github.com/DLTcollab/sse2neon/blob/master/tests/impl.cpp">https://github.com/DLTcollab/sse2neon/blob/master/tests/impl.cpp</a> (it looks like the intel intrinsics, but it's actually a portable api)</p>
<p>(sorry if we aren't supposed to use this thread after the meeting is done)</p>



<a name="212368431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212368431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212368431">(Oct 05 2020 at 23:20)</a>:</h4>
<p>I'll run through and catch up on everything now and post an update to the tracking issue <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span></p>



<a name="212375081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/2020-10-05%20meeting/near/212375081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/2020-10-05.20meeting.html#212375081">(Oct 06 2020 at 01:13)</a>:</h4>
<p>Thank you!</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>